home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / vbdatabs / mtank.h < prev    next >
C/C++ Source or Header  |  1999-03-17  |  5KB  |  125 lines

  1. // ------------------------------- //
  2. // -------- Start of File -------- //
  3. // ------------------------------- //
  4. // ----------------------------------------------------------- //
  5. // C++ Header File Name: mtank.h 
  6. // Compiler Used: MSVC40, DJGPP 2.7.2.1, GCC 2.7.2.1, HP CPP 10.24
  7. // Produced By: Doug Gaer   
  8. // File Creation Date: 09/17/1997  
  9. // Date Last Modified: 03/18/1999
  10. // Copyright (c) 1997 Douglas M. Gaer
  11. // ----------------------------------------------------------- // 
  12. // ---------- Include File Description and Details  ---------- // 
  13. // ----------------------------------------------------------- // 
  14. /*
  15. The VBD C++ classes are copyright (c) 1997, by Douglas M. Gaer.
  16. All those who put this code or its derivatives in a commercial
  17. product MUST mention this copyright in their documentation for
  18. users of the products in which this code or its derivative
  19. classes are used. Otherwise, you have the freedom to redistribute
  20. verbatim copies of this source code, adapt it to your specific
  21. needs, or improve the code and release your improvements to the
  22. public provided that the modified files carry prominent notices
  23. stating that you changed the files and the date of any change.
  24.  
  25. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.
  26. THE ENTIRE RISK OF THE QUALITY AND PERFORMANCE OF THIS SOFTWARE
  27. IS WITH YOU. SHOULD ANY ELEMENT OF THIS SOFTWARE PROVE DEFECTIVE,
  28. YOU WILL ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR
  29. CORRECTION.
  30.  
  31. This is a test program used to test the (P)ersistent base class
  32. in a practical database application.
  33. */
  34. // ----------------------------------------------------------- //   
  35. #ifndef __MTANK_HPP
  36. #define __MTANK_HPP
  37.  
  38. #include "persist.h"
  39. #include "float64.h"
  40. #include "cdate.h"
  41.  
  42. // Object type id
  43. const INT32 MarineTankID = 6798;
  44.  
  45. // Class version
  46. const INT32 MarineTankVersion = 1025;
  47.  
  48. class MarineTank : public Persistent
  49. {
  50. public:
  51.   MarineTank(POD *pod);
  52.   MarineTank(const POD *pod);
  53.   MarineTank();
  54.   MarineTank(const MarineTank &ob) { Copy(ob); }
  55.   void operator=(const MarineTank &ob) { Copy(ob); }
  56.   ~MarineTank() { }
  57.   
  58. public:
  59.   void SetDate(__UBYTE__ month, __UBYTE__ day, UINT16 year) {
  60.     cdate.SetDate(month, day, year);
  61.   }
  62.   void SetCDate(const CDate &ob) { cdate = ob; }
  63.   void SetSG(FLOAT64 val) { specific_gravity = val; }
  64.   void SetPH(FLOAT64 val) { pH = val; }
  65.   void SetAmmonia(FLOAT64 val) { ammonia = val; }
  66.   void SetNitrate(INT32 val) { nitrate = val; }
  67.   void SetNitrite(FLOAT64 val) { nitrite = val; }
  68.   void SetComments(UString &s) { comments = s; }
  69.   void SetComments(char *s) { comments = s; }
  70.   void SetComments(const char *s) { comments = s; }
  71.   char *GetDateStr() { return cdate.c_str(); }
  72.   char *GetMonthStr() { return cdate.month_c_str(); }
  73.   char *GetDayStr() { return cdate.day_c_str(); }
  74.   char *GetYearStr() { return cdate.year_c_str(); }
  75.   CDate GetDate() { return cdate; }
  76.   CDate GetDate() const { return cdate; }
  77.   FLOAT64 GetSG() { return specific_gravity; }
  78.   FLOAT64 GetPH() { return pH; }
  79.   FLOAT64 GetAmmonia() { return ammonia; }
  80.   INT32 GetNitrate() { return nitrate; }
  81.   FLOAT64 GetNitrite() { return nitrite; }
  82.   char *GetComments() { return comments.c_str(); }
  83.   const char *GetComments() const { return comments.c_str(); }
  84.   
  85. public:
  86.   void Copy(const MarineTank &ob);
  87.   int FullCompare(const MarineTank &ob);
  88.   
  89. private: // Base class interface
  90.   virtual FAU Write();
  91.   virtual void Read(FAU Address);
  92.   virtual FAU Find();
  93.   virtual FAU Delete();
  94.   virtual FAU Remove();
  95.   
  96. public: // Base class interface
  97.   virtual INT32 GetClassID() const { return MarineTankID; }
  98.   virtual const char *GetClassName() { return "Class MarineTank"; }
  99.   virtual unsigned ObjectLength();
  100.   virtual void SetObjectAddress(FAU addr) { objectaddress = addr; }
  101.   virtual FAU GetObjectAddress() { return objectaddress; }
  102.   virtual int CompareIndex();
  103.   virtual int RebuildIndexFile(const char *fname);
  104.   
  105. public: // Overloaded operators
  106.   friend int operator==(const MarineTank &a, const MarineTank &b);
  107.   friend int operator!=(const MarineTank &a, const MarineTank &b);
  108.   friend int operator<(const MarineTank &a, const MarineTank &b);
  109.  
  110. private:
  111.   CDate   cdate;            // Date of the water test
  112.   FLOAT64 specific_gravity; // Hydrometer reading for salintiy
  113.   FLOAT64 pH;               // Percentage of hydrogen
  114.   FLOAT64 ammonia;          // NH3-Nitrogen in milligrams/liter or ppm
  115.   INT32   nitrate;          // NO3-Nitrogen in milligrams/liter or ppm
  116.   FLOAT64 nitrite;          // NO2-Nitrogen in milligrams/liter or ppm
  117.   UString comments;         // Comments block
  118. };
  119.  
  120. #endif  // __MTANK_HPP 
  121. // ----------------------------------------------------------- // 
  122. // ------------------------------- //
  123. // --------- End of File --------- //
  124. // ------------------------------- //
  125.